/**
 * 物业公司户型管理 - TypeScript类型定义
 * @author Wu.Liang
 * @date 2025-01-30
 * @version 1.0.0
 */

// 户型基本信息
export interface HouseType {
  id?: number
  propertyCompanyId: number
  houseTypeName: string // 户型名称（必填）
  totalArea: number // 建筑面积（必填）
  usableArea?: number // 套内面积
  publicArea?: number // 公摊面积
  efficiencyRate?: number // 得房率
  
  // 房间数量明细
  bedroomCount?: number // 卧室总数
  masterBedroomCount?: number // 主卧数量
  secondaryBedroomCount?: number // 次卧数量
  childrenRoomCount?: number // 儿童房数量
  livingRoomCount?: number // 客厅数量
  diningRoomCount?: number // 餐厅数量
  kitchenCount?: number // 厨房数量
  bathroomCount?: number // 卫生间总数
  masterBathroomCount?: number // 主卫数量
  publicBathroomCount?: number // 公卫数量
  guestBathroomCount?: number // 客卫数量
  studyRoomCount?: number // 书房数量
  storageRoomCount?: number // 储物间数量
  cloakroomCount?: number // 衣帽间数量
  entranceGardenCount?: number // 入户花园数量
  
  // 面积细分
  masterBedroomArea?: number // 主卧面积
  livingRoomArea?: number // 客厅面积
  kitchenArea?: number // 厨房面积
  bathroomArea?: number // 卫生间面积
  
  // 户型朝向
  orientation?: string // 整体朝向
  masterBedroomOrientation?: string // 主卧朝向
  livingRoomOrientation?: string // 客厅朝向
  
  // 楼层位置关联
  floorPosition?: string // 楼层位置
  hasGarden?: boolean // 是否有花园
  hasTerrace?: boolean // 是否有露台
  hasAttic?: boolean // 是否有阁楼
  
  // 空间形态
  isSquare?: boolean // 是否方正
  hasIrregularSpace?: boolean // 是否有异形空间
  isTransparent?: boolean // 是否南北通透
  isAllBright?: boolean // 是否全明户型
  hasDynamicStaticSeparation?: boolean // 是否动静分区
  hasWetDrySeparation?: boolean // 是否干湿分区
  
  // 特殊功能区
  balconyCount?: number // 阳台数量
  balconyType?: string // 阳台类型
  balconyStyle?: string // 阳台样式
  bayWindowCount?: number // 飘窗数量
  bayWindowType?: string // 飘窗类型
  kitchenHasBalcony?: boolean // 厨房是否带生活阳台
  bathroomHasBathtub?: boolean // 卫生间是否带浴缸
  bathroomHasSeparation?: boolean // 卫生间是否干湿分离
  bathroomHasWindow?: boolean // 卫生间是否有窗户
  
  // 建筑结构
  floorHeight?: number // 层高
  netHeight?: number // 净高
  hasLoft?: boolean // 是否有loft挑高
  hasDuplex?: boolean // 是否有复式
  
  // 改造潜力
  canModify?: boolean // 是否可改户型
  hasGiftArea?: boolean // 是否有赠送面积
  giftAreaDesc?: string // 赠送面积描述
  
  // 户型图相关
  floorPlanType?: string // 户型图类型
  floorPlanStatus?: string // 户型图状态
  floorPlanUrl?: string // 户型图URL（单个URL）
  floorPlanUrls?: string[] // 户型图URL数组（多个图片）
  
  // 标签与备注
  advantageTags?: string[] // 户型优势标签
  suitableCrowd?: string // 适用人群标签
  remark?: string // 备注说明
  
  // 系统字段
  status?: number
  createTime?: string
  updateTime?: string
  createBy?: number
  updateBy?: number
  deleted?: number
}

// 户型查询参数
export interface HouseTypeQueryParams extends BaseQueryParams {
  propertyCompanyId?: number
  houseTypeName?: string
  totalAreaMin?: number
  totalAreaMax?: number
  bedroomCount?: number
  orientation?: string
  status?: number
}

// 户型创建参数
export interface HouseTypeCreateParams extends Omit<HouseType, 'id' | 'createTime' | 'updateTime' | 'createBy' | 'updateBy' | 'deleted' | 'propertyCompanyId'> {
  propertyCompanyIds: number[] // 支持多选物业公司
}

// 户型更新参数
export interface HouseTypeUpdateParams extends Partial<HouseType> {
  id: number
}

// 户型标签
export interface HouseTypeTag {
  id: number
  tagName: string
  tagCategory?: string
  tagDescription?: string
  status?: number
}

// 户型朝向选项
export const ORIENTATION_OPTIONS = [
  { label: '南北通透', value: '南北通透' },
  { label: '朝南', value: '朝南' },
  { label: '朝北', value: '朝北' },
  { label: '朝东', value: '朝东' },
  { label: '朝西', value: '朝西' },
  { label: '东南', value: '东南' },
  { label: '西南', value: '西南' },
  { label: '东北', value: '东北' },
  { label: '西北', value: '西北' },
  { label: '东西向', value: '东西向' }
]

// 楼层位置选项
export const FLOOR_POSITION_OPTIONS = [
  { label: '底层', value: '底层' },
  { label: '顶层', value: '顶层' },
  { label: '中间层', value: '中间层' }
]

// 阳台类型选项
export const BALCONY_TYPE_OPTIONS = [
  { label: '生活阳台', value: '生活阳台' },
  { label: '景观阳台', value: '景观阳台' },
  { label: '多功能阳台', value: '多功能阳台' }
]

// 阳台样式选项
export const BALCONY_STYLE_OPTIONS = [
  { label: '封闭式', value: '封闭式' },
  { label: '开放式', value: '开放式' },
  { label: '半封闭式', value: '半封闭式' }
]

// 飘窗类型选项
export const BAY_WINDOW_TYPE_OPTIONS = [
  { label: '全飘', value: '全飘' },
  { label: '半飘', value: '半飘' }
]

// 户型图类型选项
export const FLOOR_PLAN_TYPE_OPTIONS = [
  { label: '原始结构图', value: '原始结构图' },
  { label: '装修示意图', value: '装修示意图' },
  { label: '尺寸标注图', value: '尺寸标注图' }
]

// 户型图状态选项
export const FLOOR_PLAN_STATUS_OPTIONS = [
  { label: '开发商标准图', value: '开发商标准图' },
  { label: '业主实测图', value: '业主实测图' }
]

// 适用人群选项
export const SUITABLE_CROWD_OPTIONS = [
  { label: '刚需小户型', value: '刚需小户型' },
  { label: '改善型大户型', value: '改善型大户型' },
  { label: '学区房户型', value: '学区房户型' },
  { label: '投资型户型', value: '投资型户型' },
  { label: '养老型户型', value: '养老型户型' },
  { label: '度假型户型', value: '度假型户型' }
]

// 常用户型优势标签
export const COMMON_ADVANTAGE_TAGS = [
  '全明户型',
  '南北通透',
  '主卧套间',
  '动静分离',
  '干湿分离',
  '方正户型',
  '赠送面积',
  '可改户型',
  '学区房户型',
  '刚需小户型',
  '改善型大户型',
  '投资型户型'
]

// 基础查询参数接口
export interface BaseQueryParams {
  current?: number
  size?: number
  keyword?: string
}
